var md5 = require('./md5'); //md5加密

function sign(key, value) {
  //封闭全局加密方法
  var val = value;
  var jsonstr = objKeySort(val);
  var newkey = Object.keys(jsonstr);
  var valueStr = '';
  for (var i = 0; i < newkey.length; i++) {
    if (newkey[i] === 'products' || newkey[i] === 'sign') {
    } else {
      valueStr += jsonstr[newkey[i]];
    }
  }
  val = key + valueStr;
  var md5Pw = md5.md5(val);
  // console.info("返回md5Pw为：" + JSON.stringify(md5Pw))
  return md5Pw; 
}

//排序的函数
function objKeySort(obj) {
  //排序的函数
  var newkey = Object.keys(obj).sort();
  //先用Object内置类的keys方法获取要排序对象的属性名，再利用Array原型上的sort方法对获取的属性名进行排序，newkey是一个数组
  var newObj = {}; //创建一个新的对象，用于存放排好序的键值对
  for (var i = 0; i < newkey.length; i++) {
    //遍历newkey数组
    newObj[newkey[i]] = obj[newkey[i]]; //向新创建的对象中按照排好的顺序依次增加键值对
  }
  return newObj; //返回排好序的新对象
}

function getTimestamp() {
  var times = Date.parse(new Date());
  let timestamp = '' + times / 1000 + '';
  return timestamp;
}

module.exports = {
  sign: sign,
  getTimestamp: getTimestamp,
};
